home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)tm.d64
/
factor race.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
5KB
|
226 lines
0 REM
1 POKE53280,0:POKE53281,0:E=31744:PRINT"[152]"CHR$(142):REM C64 MODS BY WIM '83
2 REM
10 DIMAA(13)
100 PRINT"[147]THIS IS A GAME FOR TWO, THREE OR FOUR"
105 PRINT"PLAYERS. TO WIN, YOU MUST BE ABLE TO"
110 PRINT"FACTOR SOME ALGEBRAIC EXPRESSIONS."
115 PRINT
120 PRINT"YOU WILL BE ASKED TO MAKE A BET. IF"
125 PRINT"YOU BET A HIGH NUMBER, YOU MAY BE ASKED"
130 PRINT"TO FACTOR A DIFFICULT EXPRESSION, BUT"
135 PRINT"IF YOU GET IT RIGHT YOU WILL ADVANCE"
140 PRINT"A LONG WAY DOWN THE RACE TRACK. IF"
145 PRINT"YOU GET THE FACTORS WRONG, THOUGH, YOU"
150 PRINT"WILL LOSE GROUND IN THE RACE."
155 PRINT
160 PRINT"YOU HAVE TO BE ABLE TO WRITE FACTORS"
165 PRINT"IN GOOD MATHEMATICAL FORM. HERE ARE"
170 PRINT"REMINDERS. NEVER WRITE A COEFFICIENT"
175 PRINT"OF ONE. ALWAYS WRITE COMMON FACTORS"
180 PRINT"FIRST. IF TWO OR MORE FACTORS ARE"
185 PRINT"IDENTICAL, USE EXPONENTS. ON THIS"
190 PRINT"COMPUTER YOU ENTER EXPONENTS BY USING"
195 PRINT"THE '^' KEY. THUS 'X SQUARED' BECOMES"
200 PRINT"'X^2'."
210 PRINT
220 PRINT" PRESS SPACE BAR TO CONTINUE"
230 GETYB$:IFYB$<>""THEN230
240 GETYB$:IFYB$<>" "THEN240
400 PRINT"[147]HOW MANY PLAYERS WILL THERE BE? (2-4)"
410 INPUTNP
420 IFABS(3-NP)>1THENPRINT"ILLEGAL NUMBER":GOTO400
500 REM DRAW TRACK
505 PRINT"[147]"
510 FORDV=1TONP+1
520 FORV1=1TO40:PRINT"-";:NEXT
530 PRINT
540 NEXT
550 PRINT"[145]START FINISH"
600 FORPN=1TONP
610 GOSUB11000
620 NEXT
650 PN=1
700 WA=0
710 PRINT""
720 PRINT"PLAYER"PN", HOW MUCH DO YOU BET? (1-6)"
725 INPUTDI
727 DI=DI-1
730 IFABS(2.5-DI)>2.5THEN710
735 GOSUB6000:GOSUB7000
740 PRINT"FACTOR [145]"P$
750 INPUTIN$
755 GOSUB9000:GOSUB10000
760 IFWA=1GOTO800
770 PRINT"WELL DONE!":SC(PN)=SC(PN)+DI+1:GOSUB11000
775 IFSC(PN)>35GOTO1100
780 PN=PN+1:IFPN>NPTHENPN=1
790 GOTO890
800 PRINT"NO, THE FACTORS ARE"
810 PRINTF1$;F2$;F3$
820 SC(PN)=SC(PN)-DI-1
830 IFSC(PN)<0THENSC(PN)=0
840 GOSUB11000
880 PN=PN+1:IFPN>NPTHENPN=1
890 TK=TI
900 IFTI-TK<200THEN900
902 IFWA=0GOTO910
905 IFTI-TK<700THEN905
910 PRINT""
920 FORDV=1TO12
930 PRINT" "
940 NEXT
950 GOTO700
1100 PRINT"[147]PLAYER"PN"WINS
1110 [153]"DO YOU WISH TO PLAY AGAIN? (Y OR N)"
1120 [161]YA$:[139]YA$[178]""[167]1120
1130 [139]YA$[178]"Y"[167][156]:[137]0
1140 [139]YA$[178]"N"[167][153]"GOODBYE!":[128]
1150 [137]1120
4999 [128]
5000 [143] GENERATE PAIRS OF NUMBERS WITHOUT COMMON FACTORS
5070 AX[178]0
5100 [129]DV[178]1[164]13:AA(DV)[178]0:[130]
5450 AD[178]1:AE[178]1
5480 [129]DV[178]1[164]DI[173]3[170]1
5500 AB[178](10[170]DI)[172]([187](1))[174](10[173](DI[170]10))
5510 [139]AB[179]2[167]AC[178]1:[137]5550
5512 [139]AB[179]6[167]AC[178]2:AA(2)[178]1:[137]5550
5514 [139]AB[179]10[167]AC[178]3:AA(3)[178]1:[137]5550
5516 [139]AB[179]12[167]AC[178]5:AA(5)[178]1:[137]5550
5518 [139]AB[179]13[167]AC[178]7:AA(7)[178]1:[137]5550
5520 [139]AB[179]14[167]AC[178]11:AA(11)[178]1:[137]5550
5522 [139]AB[179]15[167]AC[178]13:AA(13)[178]1:[137]5550
5550 AD[178]AD[172]AC
5555 [139]AD[177][178]5[170]3[172]DI[137]5000
5560 [130]
5590 AF[178][181](10[172][187](1))
5595 [139]AF[177]4[167]AF[178]1:[137]5600
5597 AF[178][171]1
5600 AD[178]AD[172]AF
5680 [129]DV[178]1[164]DI[173]3[170]1
5700 AB[178](2[170]2.6[172]DI)[172]([187](1))[174](10[173](DI[170]10))
5710 [139]AB[179]2[167]AC[178]1:[137]5730
5712 [139]AB[179]6[167]AC[178]2:[137]5730
5714 [139]AB[179]10[167]AC[178]3:[137]5730
5716 [139]AB[179]12[167]AC[178]5:[137]5730
5718 [139]AB[179]13[167]AC[178]7:[137]5730
5720 [139]AB[179]14[167]AC[178]11:[137]5730
5722 [139]AB[179]15[167]AC[178]13:[137]5730
5730 [139]AA(AC)[178]1[137]5700
5750 AE[178]AE[172]AC
5755 [139]AE[177][178]10[170]2[172]DI[167]AE[178]1:[137]5680
5760 [130]
5900 [142]
6000 [143] GENERATE POLYNOMIAL STRINGS
6010 [141]5000:AM[178]AE:AN[178]AD
6020 [141]5000:AO[178]AE:AP[178]AD
6030 [139]DI[179]2[167]AQ[178]1:AR[178]0:[137]6100
6040 [139]DI[178]3[167]AQ[178]1:AR[178]0:[137]6100
6050 [141]5000:AQ[178]AD:AR[178]AE[171]1
6100 C1[178]AQ[172]AM[172]AO:C1$[178][196](C1)
6110 C2[178]AQ[172](AM[172]AP[170]AN[172]AO):C2$[178][196](C2)
6120 C3[178]AQ[172]AN[172]AP:C3$[178][196](C3)
6130 V1$[178]"X":V2$[178]"X":V3$[178]"X"
6140 E1[178]2[170]AR:E1$[178][196](E1)
6150 E2[178]1[170]AR:E2$[178][196](E2)
6160 E3[178]AR:E3$[178][196](E3)
6170 [139]E2[178]1[167]E2$[178]""
6180 [139]E3[178]1[167]E3$[178]""
6190 [139]E3[178]0[167]E3$[178]"":V3$[178]""
6200 S1$[178]"+":[139]C2[179]0[167]S1$[178]""
6210 S2$[178]"+":[139]C3[179]0[167]S2$[178]""
6220 [139]C3[178]0[167]C3$[178]"":S2$[178]"":V3$[178]""
6230 [139]C2[178]0[167]S1$[178]"":C2$[178]"":V2$[178]"":E2$[178]""
6240 [139]C1[178]0[167]CI$[178]""
6250 [139]C1[178]1[167]C1$[178]" "
6260 [139]C2[178]1[167]C2$[178]""
6270 [139]C3[179][177]1[137]6280
6275 [139]V3$[179][177]""[167]C3$[178]""
6280 [139]C1[178][171]1[167]C1$[178]"-"
6290 [139]C2[178][171]1[167]C2$[178]"-"
6300 [139]C3[179][177][171]1[137]6500
6310 [139]V3$[179][177]""[167]C3$[178]"-"
6500 P$[178]""[170]C1$[170]V1$[170]"ON"[170]E1$[170]""[170]S1$[170]C2$[170]V2$[170]"ON"[170]E2$[170]""[170]S2$[170]C3$[170]V3$[170]"ON"[170]E3$[170]"
6600 BR$=P$:GOSUB8000:P$=BR$
6999 RETURN
7000 REM GENERATE FACTORS
7100 FA$=STR$(AQ)
7110 IFAQ=1THENFA$=""
7115 IFAQ=-1THENFA$="-"
7120 FB$="X":IFAR=0THENFB$=""
7130 FC$="^"+STR$(AR):IFAR=0THENFC$=""
7135 IFAR=1THENFC$=""
7140 F1$=FA$+FB$+FC$
7150 FD$=STR$(AM)
7155 IFAM=1THENFD$=""
7160 FE$="X"
7170 FF$="+":IFAN<=0THENFF$=""
7180 IFAM=0THENFD$="":FE$="":FF$=""
7190 FG$=STR$(AN):IFAN=0THENFG$="":FF$=""
7200 F2$="("+FD$+FE$+FF$+FG$+")"
7250 FH$=STR$(AO)
7255 IFAO=1THENFH$=""
7260 FI$="X"
7270 FJ$="+":IFAP<=0THENFJ$=""
7280 IFAO=0THENFH$="":FI$="":FJ$=""
7290 FK$=STR$(AP):IFAP=0THENFK$="":FJ$=""
7300 F3$="("+FH$+FI$+FJ$+FK$+")"
7500 IFF2$=F3$THENF3$="^2"
7600 IFF1$="[145]"THENF1$=""
7700 BR$=F1$:GOSUB8000:F1$=BR$
7710 BR$=F2$:GOSUB8000:F2$=BR$
7720 BR$=F3$:GOSUB8000:F3$=BR$
7999 RETURN
8000 REM BLANK REMOVAL, STRING = BR$
8010 BP$=""
8020 FORDV=1TOLEN(BR$)
8030 IFMID$(BR$,DV,1)=" "THEN8050
8033 IFMID$(BR$,DV,1)="["THENBP$=BP$+"(":GOTO8050
8035 IFMID$(BR$,DV,1)="]"THENBP$=BP$+")":GOTO8050
8040 BP$=BP$+MID$(BR$,DV,1)
8050 NEXT
8060 BR$=BP$
8100 RETURN
9000 REM FINDING FACTORS IN ANSWER
9020 BR$=IN$:GOSUB8000:IN$=BR$
9025 IFLEFT$(IN$,1)="?"THENIN$=RIGHT$(IN$,LEN(IN$)-1)
9030 G1$=""
9040 FORDV=1TOLEN(IN$)
9050 IFMID$(IN$,DV,1)="("THEN9100
9060 G1$=G1$+MID$(IN$,DV,1)
9070 NEXT
9080 WA=1:RETURN
9100 IO$=RIGHT$(IN$,(LEN(IN$)-LEN(G1$)))
9110 G2$=""
9120 FORDV=1TOLEN(IO$)
9130 IFMID$(IO$,DV,1)=")"THEN9200
9140 G2$=G2$+MID$(IO$,DV,1)
9150 NEXT
9180 WA=1:RETURN
9200 G2$=G2$+MID$(IO$,DV,1)
9210 G3$=RIGHT$(IO$,(LEN(IO$)-LEN(G2$)))
9900 RETURN
10000 REM COMPARING TRUE FACTORS AND ANSWER
10010 IFG1$<>F1$THENWA=1:RETURN
10020 IFG2$<>F2$GOTO10100
10030 IFG3$<>F3$THENWA=1:RETURN
10050 RETURN
10100 IFG2$<>F3$THENWA=1:RETURN
10110 IFG3$<>F2$THENWA=1:RETURN
10200 RETURN
11000 REM PLACE MARKERS
11010 PRINT""
11020 FORDV=1TOPN
11030 PRINT
11032 NEXT
11035 PRINT"[145][145]"
11040 BR$=""+STR$(PN)+"[146]"
11050 GOSUB8000:PM$=BR$
11060 SA$=""
11070 FORDV=0TOSC(PN):SA$=SA$+" ":NEXT
11080 SB$=""
11090 FORDV=0TO36-SC(PN):SB$=SB$+" ":NEXT
11100 PRINT"[145]";SA$;PM$;SB$;"[157][165]"
11200 RETURN